import { reqPassport, reqLogout } from '@/api/user'

// 获取本地的账户
const user = JSON.parse(localStorage.getItem('user')) || {
	name: '',
	token: '',
}

export default {
	// 状态数据
	state: {
		name: user.name,
		token: user.token,
	},
	// 处理异步 提交要修改任务给mutations
	actions: {
		async login({ commit }, { phone, password }) {
			const res = await reqPassport(phone, password)
			commit('LOGIN', res)
		},

		async logout({ commit }) {
			await reqLogout()
			commit('RESET')
		},
	},
	// 直接修改state
	mutations: {
		// 储存用户在本地
		LOGIN(state, res) {
			state.name = res.name
			state.token = res.token
			// 把登录的账户存在本地
			localStorage.setItem(
				'user',
				JSON.stringify({
					name: res.name,
					token: res.token,
				})
			)
		},
		// 清除本地账户
		RESET(state) {
			state.name = ''
			state.token = ''
			localStorage.removeItem('user')
		},
	},
	// 相当于计算属性
	getters: {},
	// 开启命名空间，此时每个模块的内容就是自己独有的
	namespaced: true,
}
